package cn.lix.sc.rpc.service.demo.service;

import org.springframework.web.multipart.MultipartFile;

import java.io.InputStream;

/**
 * 增强的文件处理服务接口，支持文件上传、下载和流处理
 * @author lix
 * @date 2024
 */
public interface EnhancedFileService {
    
    /**
     * 文件上传处理
     * @param file 上传的文件
     * @param description 文件描述
     * @return 处理结果
     */
    String uploadFile(MultipartFile file, String description);
    
    /**
     * 文件下载（返回字节数组）
     * @param fileName 文件名
     * @return 文件字节数据
     */
    byte[] downloadFile(String fileName);
    
    /**
     * 流式数据处理
     * @param inputStream 输入流
     * @param operation 操作类型
     * @return 处理后的字节数据
     */
    byte[] processStream(InputStream inputStream, String operation);
    
    /**
     * 文本处理服务
     * @param content 文本内容
     * @return 处理结果
     */
    String processText(String content);
    
    /**
     * 图片处理服务
     * @param imageData 图片数据
     * @param operation 处理操作（resize, rotate, compress等）
     * @return 处理后的图片数据
     */
    byte[] processImage(byte[] imageData, String operation);
    
    /**
     * 批量文件处理
     * @param files 文件列表JSON字符串
     * @param batchOperation 批量操作类型
     * @return 处理结果统计
     */
    String batchProcessFiles(String files, String batchOperation);
} 